Telegram Group & Telegram Channel
🆒 5 трюков Jetpack Compose

1️⃣ Используйте rememberUpdatedState, чтобы избежать устаревших лямбд

Если вы передаете в Composable лямбду, которая может измениться, rememberUpdatedState гарантирует, что вы используете последнюю версию.

val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}


Без этого Compose может вызвать старую версию лямбды, что приведет к ошибкам.

2️⃣ Не забывайте о pointerInput для кастомных жестов

Выйдете за пределы clickable — используйте перетаскивание, мультитач или собственное распознавание сложных жестов.

Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}


Можно также обнаружить масштабирование с помощью щипков, смахивание или реализовать распознавание кастомных жестов.

3️⃣ Прокручивайте любой компонент с помощью Modifier.scrollable

Хотите прокрутить бокс или кастомный макет? Вам не нужно использовать LazyColumn или Column.

val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}


Также работает с горизонтальными прокрутками или вложенными скролами с помощью NestedScrollConnection.

4️⃣ Используйте CompositionLocal для тематического поведения

Вместо глубокой передачи параметров используйте CompositionLocal для обмена такими значениями, как интервал или предпочтения пользователя.

val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}


Идеально подходит для согласования таких элементов дизайна, как интервалы, цвета или размеры шрифтов в больших кодовых базах.

5️⃣ Используйте Modifier.graphicsLayer для создания эффектов

graphicsLayer предоставляет вам низкоуровневый контроль для применения таких эффектов, как вращение, масштабирование или альфа-канал, прямо на GPU.

Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}


Используйте с осторожностью: эти эффекты хорошо работают на графических процессорах, но проверяйте производительность на устройствах более низкого класса.

Делитесь в комментариях лайфхаками, которыми вы пользуетесь 💬

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/mobileproglib/5921
Create:
Last Update:

🆒 5 трюков Jetpack Compose

1️⃣ Используйте rememberUpdatedState, чтобы избежать устаревших лямбд

Если вы передаете в Composable лямбду, которая может измениться, rememberUpdatedState гарантирует, что вы используете последнюю версию.

val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}


Без этого Compose может вызвать старую версию лямбды, что приведет к ошибкам.

2️⃣ Не забывайте о pointerInput для кастомных жестов

Выйдете за пределы clickable — используйте перетаскивание, мультитач или собственное распознавание сложных жестов.

Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}


Можно также обнаружить масштабирование с помощью щипков, смахивание или реализовать распознавание кастомных жестов.

3️⃣ Прокручивайте любой компонент с помощью Modifier.scrollable

Хотите прокрутить бокс или кастомный макет? Вам не нужно использовать LazyColumn или Column.

val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}


Также работает с горизонтальными прокрутками или вложенными скролами с помощью NestedScrollConnection.

4️⃣ Используйте CompositionLocal для тематического поведения

Вместо глубокой передачи параметров используйте CompositionLocal для обмена такими значениями, как интервал или предпочтения пользователя.

val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}


Идеально подходит для согласования таких элементов дизайна, как интервалы, цвета или размеры шрифтов в больших кодовых базах.

5️⃣ Используйте Modifier.graphicsLayer для создания эффектов

graphicsLayer предоставляет вам низкоуровневый контроль для применения таких эффектов, как вращение, масштабирование или альфа-канал, прямо на GPU.

Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}


Используйте с осторожностью: эти эффекты хорошо работают на графических процессорах, но проверяйте производительность на устройствах более низкого класса.

Делитесь в комментариях лайфхаками, которыми вы пользуетесь 💬

🐸 Библиотека мобильного разработчика

#буст

BY Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/mobileproglib/5921

View MORE
Open in Telegram


Библиотека мобильного разработчика | Android iOS Swift Retrofit Moshi Chuck Telegram | DID YOU KNOW?

Date: |

NEWS: Telegram supports Facetime video calls NOW!

Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another option—secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secure—like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.

Export WhatsApp stickers to Telegram on iPhone

You can’t. What you can do, though, is use WhatsApp’s and Telegram’s web platforms to transfer stickers. It’s easy, but might take a while.Open WhatsApp in your browser, find a sticker you like in a chat, and right-click on it to save it as an image. The file won’t be a picture, though—it’s a webpage and will have a .webp extension. Don’t be scared, this is the way. Repeat this step to save as many stickers as you want.Then, open Telegram in your browser and go into your Saved messages chat. Just as you’d share a file with a friend, click the Share file button on the bottom left of the chat window (it looks like a dog-eared paper), and select the .webp files you downloaded. Click Open and you’ll see your stickers in your Saved messages chat. This is now your sticker depository. To use them, forward them as you would a message from one chat to the other: by clicking or long-pressing on the sticker, and then choosing Forward.

Библиотека мобильного разработчика | Android iOS Swift Retrofit Moshi Chuck from jp


Telegram Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
FROM USA